package archive

import (
	"fmt"
	"github.com/gogf/gf/v2/text/gstr"
)

type Bzip2 struct{}

func (r *Bzip2) Archive(source []string, destination string) error {
	fmt.Printf("bzip2 archive\n")
	fmt.Printf("source: %s\n", gstr.Implode(" ", source))
	fmt.Printf("destination: %s\n", destination)

	return nil
}

func (r *Bzip2) Extract(source string, destination []string) error {
	fmt.Printf("bzip2 extract\n")
	fmt.Printf("source: %s\n", source)
	fmt.Printf("destination: %s\n", gstr.Implode(" ", destination))

	return nil
}

// import (
//     "os"
//     "compress/bzip2"
// )
//
// var ArchiveBz2 = &archiveBz2{}
//
// type archiveBz2 struct {}
//
// func (receiver *archiveZip) TarReader(source string) (error) {
//     fileReader, err := os.Open(source)
//     if err != nil {
//         return nil, err
//     }
//     defer fileReader.Close()
//
//     xzReader, err := xz.NewReader(fileReader, 0)
//     if err != nil {
//         return nil, err
//     }
//
//     return tar.NewReader(xzReader), nil
// }
// func (receiver *archiveZip) TarWriter(source string) (error) {
//     fileWriter, err := os.Create(target)
//     if err != nil {
//         return err
//     }
//     defer fileWriter.Close()
//
//     xzWriter, err := xz.NewReader(fileWriter, 0)
//     if err != nil {
//         return nil, err
//     }
//
//     return tar.NewWriter(xzWriter), nil
// }
